package com.smartleanx.module.hrm.service.esign.temp.result;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

/**
 * e签报合同任务列表
 *
 * @author xzq
 * @since 2025-07-07 15:56:14
 */
@Data
public class HrmETaskListResult implements Serializable {
    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    @Schema(description = "合同名称")
    private String contractName;

    @Schema(description = "合同编号")
    private String contractCode;

    @Schema(description = "参与方")
    private List<Actor> actorList;

    @Schema(description = "发起/结束时间")
    private List<String> timeList;

    @Schema(description = "app右上角时间")
    private String time;

    @Schema(description = "截止时间")
    private EffectiveDuration effectiveDuration;

    @Schema(description = "合同状态")
    private Integer taskStatus;

    @Schema(description = "审批状态")
    private Integer approvalStatus;

    @Schema(description = "创建人")
    private String createUser;

    @Schema(description = "创建时间")
    private Date createTime;

    @Schema(description = "截止时间")
    private Date endTime;

    @Schema(description = "发起方")
    private String actorName;

    @Schema(description = "填写时间")
    private String actorFillInTime;

    @Schema(description = "签署完成的文件地址")
    private String successFileUrl;

    @Schema(description = "审批流程id")
    private String bpmProcessId;

    @ApiModelProperty(value = "任务完结时间")
    private String processEndTime;

    @ApiModelProperty(value = "审批原因")
    private String processMessage;

    @ApiModelProperty(value = "企业id")
    private String corpId;

    @Data
    public static class Actor{
        private Integer current;

        private String actorName;
    }

    @Data
    public static class EffectiveDuration{
        private Integer flag;

        private String time;
    }

}
